package fr.afcepf.atod19.voyage.test;

import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import fr.afcepf.atod19.voyage.entities.Client;
import fr.afcepf.atod19.voyage.facade.FacadeAdminGestionUtilisateur;
import fr.afcepf.atod19.voyage.facade.FacadeUtilisateur;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/springContext.xml" })
public class TestServiceUtilisateur {
    /*@Inject
	FacadeAdminGestionUtilisateur facadeAdminGestionUtilisateur;
	
	@Inject
	FacadeUtilisateur facadeUtilisateur;

	@Test
	public void testCreerCompteUtilisateur() {
		
		Client ci = new Client();
		List<Client> cv = new ArrayList<Client>();
		
		ci.setNom("Test");
		ci.setPrenom("Test");
		ci.setAdresseMail("Test@gmail.com");
		ci.setNumeroTel("0000000");
		ci.setCivilite("M");
		ci.setCoordonneesBancaire("0000-0000-0000-0000");
		ci.setMdp("00000");

		
		facadeUtilisateur.creerCompteUtilisateur(ci);
		
		cv = facadeAdminGestionUtilisateur.rechercherUnUtilisateur(ci);
		
		Assert.assertNotNull(cv);
		Assert.assertTrue(cv.size() > 0);
	}
	
	//@Test
	public void testRechercherUnUtilisateur() {

		Client ci = new Client();

		List<Client> cli;

		//ci.setNom("Test");
//		ci.setPrenom("Test");
		ci.setAdresseMail("Test@gmail.com");
//		ci.setNumeroTel("0000000");
//		ci.setCivilite("M");
//		ci.setCoordonneesBancaire("0000-0000-0000-0000");
		ci.setMdp("00000");

		cli = facadeAdminGestionUtilisateur.rechercherUnUtilisateur(ci);

		Assert.assertNotNull(cli);
		Assert.assertTrue(cli.size() > 0);
	}
	
	@Test
	public void testModifierInformationUtilisateur(){
		
		Client ci = new Client();

		ci.setAdresseMail("Test@gmail.com");
		
		Client before = facadeAdminGestionUtilisateur.rechercherUnUtilisateur(ci).get(0);
		
		Client after = facadeAdminGestionUtilisateur.rechercherUnUtilisateur(ci).get(0);
		
		System.out.println(after.getAdresseMail());
		
		after.setNom("Name Changed 13654");
		
		facadeUtilisateur.modifierInformationUtilisateur(after);
		
		Client afterr = facadeAdminGestionUtilisateur.rechercherUnUtilisateur(ci).get(0);
		
		
		Assert.assertNotSame(before, afterr);
	}
	
	@Test
	public void testSupprimerCompteUtilisateur(){
		
		Client ci = new Client();

		ci.setAdresseMail("Test@gmail.com");
		
		Client cli = facadeAdminGestionUtilisateur.rechercherUnUtilisateur(ci).get(0);
		
		Assert.assertNotNull(cli);
		
		boolean res = facadeAdminGestionUtilisateur.supprimerCompteUtilisateur(cli);
		
		Assert.assertTrue(res);
		
	}
	
	@Test
	public void testConsulterUnUtilisateur(){
		Client c = facadeUtilisateur.consulterUnUtilisateur(1);
		Assert.assertNotNull(c);
		Assert.assertTrue(c.getIdClient() != 0);
		System.out.println("test " + c.getNom());
		
	}*/
}
